/**
 * Goods 业务逻辑类
 * @author zhangq
 * @date 2015-1-8
 */
package com.chnbst.bstyun.service;


import java.util.List;
import java.util.Map;

import com.chnbst.bstyun.model.pojo.Goods;
import com.chnbst.bstyun.model.vo.GoodsVo;



public interface GoodsService {

	/**
	 * 添加商品
	 * @param goods 商品对象
	 * @return true:更新成功 false：更新失败
	 */
	boolean insertGoods(Goods goods);
	
	/**
	 * 修改商品信息
	 * @param goods 商品对象
	 * @return true:更新成功 false：更新失败
	 */
	boolean updateGoods(Goods goods);
	
	/**
     * 查询 Goods对象总数
     * @param map
     * @return 返回 Goods总数
     */
    int selectGoodsCount(Map<String, Object> map);
    
    /**
     * 分页 查询 Goods对象
     * @param map
     * @return 返回Goods
     */
    List<GoodsVo> selectGoods(Map<String, Object> map);
    
    /**
     * 根据商品编号查询商品对象
     * @param map
     * @return 返回 总数
     */
	Goods selectGoodsById(Integer id);
    
    /**
     * 查询 所有的Goods对象
     * @param map
     * @return 返回List<Goods>
     */
    List<Goods> selectAllGoods(Map<String, Object> map);
    
    /**
     * 商城  根据商品ID 查询单个商品的详情
     * @param map
     * @return 返回 总数
     */
	GoodsVo selectByGoodsId(String goodsId);
	
	/**
     * 商城后台  根据条件 查询商品的详情
     * @param map
     * @return 返回 商品详情
     */
	Goods selectByCondition(Map<String, Object> map);
	
	/**
     * 根据商品ID 查询商品的详情
     * @param map
     * @return 返回 商品详细信息
     */
	GoodsVo selectGoodsVoByGoodsId(String goodsId);
	
	//===================================以下为前台商城所需============================================//
	
	 /**
     * 商城根据左侧导航  查询相应的商品列表
     * @param map
     * @return 返回列表
     */
    List<GoodsVo> selectGoodsVoByTypeId(Map<String, Object> map);
    
    /**
     * 商城首页推荐  查询最新应用
     * @param map
     * @return 返回列表
     */
    List<GoodsVo> selectNewGoodsVo(Map<String, Object> map);
    
    /**
     * 根据商品ID 查询商品的详情
     * @param map
     * @return 返回 商品详细信息
     */
    List<GoodsVo> selectGoodsByTypeId(String typeId);
    
    /**
     * 商城根据左侧导航  查询相应的商品列表总数
     * @param map
     * @return 返回 总数
     */
    int selectCountByTypeId(String typeId);
    
    /**
     * 查询类别下是否有商品
     * @param map
     * @return 返回列表
     */
    List<Goods> selectGoodsByTId(String typeId);
    
    /**
     * 查询是否有商品使用该计费数据
     * @param map
     * @return 返回列表
     */
    List<Goods> selectGoodsByFeeId(String goodsFeeId);
    
    /**
     * 商城首页推荐  查询 最新商品
     * @return 返回列表
     */
    List<GoodsVo> selectGoodsByIndexModule();
}
